# -*- coding: utf-8 -*-

# 在python中，我们可能需要生成一个list通过以下方式,这是一个在给定的list中，我们需要计算它
# 每个元素的平方，让后将计算后的结果保持到另一个list中，当时我们方向这个方法十分的繁琐，需要写很多代码
# 这个时候我们可以使用python提供的list 生成方式
nums = [1, 2, 4, 5]
n_to_n = []
for x in nums:
    n_to_n.append(x * x)
print n_to_n

# 使用下边的方式， 我们一行代码就完成了上边的工作
n_to_n = [x * x for x in nums]
print n_to_n

# 这方的方式还可以使用多层结构，如下
str1 = 'ABC'
str2 = 'XYZ'
str = [x + '-' + y for x in str1 for y in str2]
print str
# ['A-X', 'A-Y', 'A-Z', 'B-X', 'B-Y', 'B-Z', 'C-X', 'C-Y', 'C-Z']

# 这样的方式计算后还可以进行过滤
print [x * x for x in range(1, 10) if x % 2 == 0]
# [4, 16, 36, 64]
